{erl_opts, [debug_info]}.
{deps, [{eqwalizer_support,
         {git_subdir,
          "https://github.com/whatsapp/eqwalizer.git",
          {branch, "main"},
          "eqwalizer_support"}}]}.

{shell, [{apps, [opentelemetry,
                 opentelemetry_experimental]},
         {config, "config/sys.config"}]}.

{project_plugins, [covertool,
                   {grpc_plugin, {git, "https://github.com/HJianBo/grpc_plugin", {tag, "v0.10.2"}}},
                   {gradualizer, {git, "https://github.com/josefs/Gradualizer.git",
                                  {branch, "master"}}},
                   {eqwalizer_rebar3,
                    {git_subdir,
                     "https://github.com/whatsapp/eqwalizer.git",
                     {branch, "main"},
                     "eqwalizer_rebar3"}}
                   ]}.

{gradualizer_opts, [{exclude_modules, [opentelemetry_trace_service,
                                       opentelemetry_metrics_service,
                                       opentelemetry_logs_service,
                                       opentelemetry_exporter_trace_service_pb,
                                       opentelemetry_exporter_metrics_service_pb,
                                       opentelemetry_exporter_logs_service_pb,
                                       opentelemetry_zipkin_pb]}]}.

{profiles,
 [{test, [{erl_opts, [nowarn_export_all]},
          {ct_opts, [{ct_hooks, [cth_surefire]}]}]},

  {interop, [{deps, [jsone]},
             {extra_src_dirs, ["interop"]}]},

  {bench, [{deps, [benchee]},
           {extra_src_dirs, ["samples"]},
           {plugins, [rebar_mix]},
           {provider_hooks, []},

           {shell, [{apps, [opentelemetry,
                            opentelemetry_experimental]},
                    {config, "config/bench.config"}]}]}]}.

{xref_checks, [undefined_function_calls, undefined_functions, locals_not_used,
               deprecated_function_calls, deprecated_functions]}.
%% ignore generated modules
{xref_ignores, [opentelemetry_exporter, %% TODO: remove once metrics is moved to
                otel_otlp_metrics,      %% an experimental exporter app

                {opentelemetry, start_tracer_provider, 2},
                {otel_tracer_provider, start, 2},

                opentelemetry_exporter_trace_service_pb,
                opentelemetry_exporter_metrics_service_pb,
                opentelemetry_exporter_logs_service_pb,
                opentelemetry_zipkin_pb]}.


%{dialyzer, [{warnings, [no_unknown]}]}.

{cover_enabled, true}.
{cover_export_enabled, true}.
{covertool, [{coverdata_files, ["ct.coverdata"]}]}.
%{cover_excl_apps, [opentelemetry_api_experimental, opentelemetry_experimental]}.
{cover_excl_mods, [opentelemetry_exporter_trace_service_pb, opentelemetry_trace_service,
                   opentelemetry_zipkin_pb, opentelemetry_exporter_metrics_service_pb,
                   opentelemetry_exporter_logs_service_pb,
                   opentelemetry_metrics_service]}.
